package com.xiaoma.aes.encryption.exception;

import java.text.MessageFormat;


/**
 * 用于处理加密/解密时的异常
 * @author Knight-Ran 2016年5月10日 上午11:04:07
 */
public class EncryptionException extends RuntimeException{
    
    
    /**
     * 
     */
    private static final long serialVersionUID = -1551266263159922234L;
    /**
     * message
     */
    protected String message;
    
    /* 用于保存具体的异常信息 */
    protected Throwable e;
    
    
    public EncryptionException(){}
    
    /**
     * 构造--单信息
     * @param message String
     */
    public EncryptionException(String message){
        this.setMessage(message);
    }
    
    /**
     * 构造--不处理异常
     * @param message String
     * @param arguments Object
     */
    public EncryptionException(String message, Object... arguments){
        this.setMessage(MessageFormat.format(message, arguments));
    }
    
    /**
     * 构造
     * @param message String
     * @param e Throwable
     */
    public EncryptionException(String message, Throwable e){
        this.setMessage(message);
        this.setE(e);
    }
    
    /**
     * 构造--多参数
     * @param message String
     * @param e Throwable
     * @param arguments Object
     */
    public EncryptionException(String message, Throwable e, Object... arguments){
        this.setMessage(MessageFormat.format(message, arguments));
        this.setE(e);
    }
    
    /**
     * @return the message
     */
    public String getMessage(){
        return message;
    }
    
    /**
     * @param message the message to set
     */
    public void setMessage(String message){
        this.message = message;
    }
    
    /**
     * @return the e
     */
    public Throwable getE(){
        return e;
    }
    
    /**
     * @param e the e to set
     */
    public void setE(Throwable e){
        this.e = e;
    }
    
    
}
